Final project implementation of part 1 and part 2