initial code layout