refactored packages and test classes. closes #24