contract IOwned {
    // this function isn't abstract since the compiler emits automatically generated getter functions as external
    function owner() public pure returns (address) { owner; }

    function transferOwnership(address _newOwner) public;
    function acceptOwnership() public;
}
function owner() public pure returns (address) { owner; }
// this function isn't abstract since the compiler emits automatically generated getter functions as external