Added abstract game class, 2nd mode implementation