initial code and initial tests