remove unnecessary exceptions, refactor game impl