It would be ideal to be able to separate client, core, and GUI into separate modules.
We should be able to have a lib for client that is lightweight to pull in. This may be superceeded by web3js implementation, but let's give developers something they can pull in without full core.
The GUI should also be separated to encourage projects like lightweight wallet, or future 'prettier' GUIs'
And core, as a minimal set, and the CLI interface.
This should make the project easier to manage and be better compartmentalized