This module will hold all the core mechanincs so that we can abstract things further and allow for a better design of the main system. This gives the freedom of moving the ui further from the logic and allows for changing the ui in the future.