Working game, needs optimizing