Minigame Refactoring - Part 2

Interfaces and Abstract classes utilized.