Game logic

Comments with logic of the game, so it will be easier to follow the flow
while implementing