some game logic added need to be more refined