refacroting project structure