public MonopolyResult buy (int playerID, int eventID, boolean buy) 
    {
        
        try
        {
            if(!_gameManager.isGameExists() || !_gameManager.isGameActive())
            {
                return new MonopolyResult("no active game");
            }
        
            Event last = _gameManager.getLastGameEvent();
        
            if(last.getEventID() != eventID)
            {
                return new MonopolyResult("illegal event id");
            }
        
            HumanPlayer player =  _gameManager.getGamePlayerById(playerID);
        
            // invalid player id
            if(player == null)
            {
                return new MonopolyResult("illegal player id");
            }
        
            // last event player and requasting player are not the same
            if(_gameManager.getPlayerByName(last.getPlayerName()) != player)
            {
                return new MonopolyResult("illegal player id");
            }
        
            if(!player.isInGame())
            {
                return new MonopolyResult("player not in game, can't buy");
            }
        
        
            player.setDesicion(buy);
            _gameManager.stopGameTimer();
        
            return new MonopolyResult();
        }
        catch(Exception e)
        {
            Logger.getLogger(MonopolyGame.class.getName()).log(Level.SEVERE, "error in buy", e);
            return new MonopolyResult("unknown error");
        }
    }