adding several tests to improve test coverage
reorganizing project structure
reorganizing project structure