Reorganize game methods as top-level functions

Closes #1
Closes #7