almost done with zachs code