split 'common' crate into submodules