change project structure
added tests