function BurnablePayment(bool payerIsOpening, address creator, uint _commitThreshold, uint _autoreleaseInterval, string _title, string initialStatement)
    public
    payable 
    {
        Created(this, payerIsOpening, creator, _commitThreshold, autoreleaseInterval, title);

        if (msg.value > 0) {
            
            FundsAdded(tx.origin, msg.value);
            amountDeposited += msg.value;
        }
        
        title = _title;

        if (payerIsOpening) {
            state = State.PayerOpened;
            payer = creator;
        } else {
            state = State.WorkerOpened;
            worker = creator;
        }

        commitThreshold = _commitThreshold;
        autoreleaseInterval = _autoreleaseInterval;

        if (bytes(initialStatement).length > 0) {
            if (payerIsOpening) {
                PayerStatement(initialStatement);
            } else {
                WorkerStatement(initialStatement);              
            }
        }
    }