Game implementation + shell for testing