The files below compose one correct solution. Other implementations may also be correct.
Project files:
A tar file is also available: