contract Owned {
    // The address of the owner
    address public owner;

    // Constructor
    function Owned() {
        owner = msg.sender;
    }

    // A modifier that provides a pre-check as to whether the sender is the owner
    modifier _onlyOwner {
        if (msg.sender != owner) revert();
        _;
    }

    // Transfers ownership to newOwner, given that the sender is the owner
    function transferOwnership(address newOwner) _onlyOwner {
        owner = newOwner;
    }
}
// A base contract that implements the following concepts:
// 1. A smart contract with an owner
// 2. Methods that can only be called by the owner
// 3. Transferability of ownership
function Owned() {
    owner = msg.sender;
}

// Constructor