working game, objected oriented and all