Compiles and runs but still not quite right.