function buyField() internal isInitialized {
		require(msg.value >= minimumInvest, "Too low ETH value");

		Farmer storage farmer = farmers[msg.sender];	

		
		uint256 acres = msg.value.div(fieldPrice(msg.value));
        
		if (farmer.startGrowing > 0)
			sellVegetables();
		
		farmer.startGrowing = now;
		farmer.fieldSize = farmer.fieldSize.add(acres);
		
		
		vegetablesTradeBalance[farmer.vegetableId] = vegetablesTradeBalance[farmer.vegetableId].add( acres.div(5) );
		
        uint256 fee = devFee(msg.value);
		marketing.send(fee);
		
        if (msg.data.length == 20) {
            address _referrer = bytesToAddress(bytes(msg.data));
			if (_referrer != msg.sender && _referrer != address(0)) {
				 _referrer.send(fee);
			}
        }		
    }