Generalized the implementation of 'Game' while simultaneously making it much harder to understand