Finished most of the assignment, still have to work on some bugs