added more tests and restructured project