Complete project 4 code

TODO: Add documentation