added unit test, refactory folder structure