reorg into src/client