added initial code structure