Refactor: re-layout project structure