need to iterate backwards stupid me
let allows initialiazations
implement pprinting