I think we would do well to consider splitting the internal modules in core into separate modules: core, client, utils