This will require issue #30 to be completed first, and can be based on previous year's code for inspiration.