Implemented "game-loop" using core.async channels