Added unit tests and restructured project directory