refact project structure.