completed my solution, reflection, and driver code