contract EtherLambosTuning is EtherLambosBuilding {

    // Counts the number of tunings have been done.
    uint256 public lambosTuneCount;

    function setServicestationAddress(address _address) external onlyCEO {
        ServiceStation candidateContract = ServiceStation(_address);

        // NOTE: verify that a contract is what we expect - https://github.com/Lunyr/crowdsale-contracts/blob/cfadd15986c30521d8ba7d5b6f57b4fefcc7ac38/contracts/LunyrToken.sol#L117
        require(candidateContract.isServicestation());

        // Set the new contract address
        serviceStation = candidateContract;
    }
    /// @dev we can tune lambos. Only callable by ServiceStation contract
    /// @param _newattributes the new encoded attributes of the lambo to be updated
    /// @param _tokenId the lambo to be tuned.
    function tuneLambo(uint256 _newattributes, uint256 _tokenId) external {
        
        //Tuning can only be done by the ServiceStation Contract. 
        require(
            msg.sender == address(serviceStation)
        );
        
        
        lambosTuneCount++;
        _tuneLambo(_newattributes, _tokenId);
    }
    function withdrawTuneBalances() external onlyCLevel {
        serviceStation.withdrawBalance();
        
    }

}
/// @title all functions related to tuning lambos
function tuneLambo(uint256 _newattributes, uint256 _tokenId) external {
        
    //Tuning can only be done by the ServiceStation Contract. 
    require(
        msg.sender == address(serviceStation)
    );
        
        
    lambosTuneCount++;
    _tuneLambo(_newattributes, _tokenId);
}

/// @dev we can tune lambos. Only callable by ServiceStation contract
/// @param _newattributes the new encoded attributes of the lambo to be updated
/// @param _tokenId the lambo to be tuned.