Finished framework for Part 4