Modify project structure
Modify architecture and interface