Finished lab, all functions implemented and tests work