contract ManagedContractWithPaidService is ManagedContract {

    /*
    * Price for creating a new smart contract with shares (in wei)
    */
    uint public price;

    /*
    * @param from The old price
    * @param to The new price
    * @param by Who changed the price
    */
    event PriceChanged(
        uint from,
        uint to,
        address indexed by
    );

    /*
    * @param _newPrice The new price for the service
    */
    function changePrice(uint _newPrice) public onlyAdmin returns (bool success){
        emit PriceChanged(price, _newPrice, msg.sender);
        price = _newPrice;
        return true;
    }

}
/*
 * This is a model contract where some paid service provided and there is a price
 * (in main function we can check if msg.value >= price)
 */
function changePrice(uint _newPrice) public onlyAdmin returns (bool success){
    emit PriceChanged(price, _newPrice, msg.sender);
    price = _newPrice;
    return true;
}

/*
 * @param _newPrice The new price for the service
 */