unit tests
split package into modules and executables
fix build