refactor, project restructure