implementing game mechanics