Redesigned the project and restructured the source