initial code and structure