Finished and tested part 3