Added unit tests, directory structure, modularized classes