project structure and initial code/tests