updated project structure; refactorings