updated project structure and source code