Finished implementing part 1