reorganize project into subpackages