almost done with assignment 12