Overhaul of the structure for the second exercise (not touching the wall
bit as that works fine) with the goal of increasing code reusability and
making it so that for the exercises the only thing that needs to be
added is the listeners and logic for the tasks.