A principled Object Oriented implementation of the game Boulder Dash.