re-structure project to match best practices style