project layout refactor