convert into better project structure