contract Ownable {

  //owner variable to store contract owner account
  address public owner;

  //Constructor for the contract to store owner's account on deployement
  function Ownable() public {
    owner = msg.sender;
  }
  
  //modifier to check transaction initiator is only owner
  modifier onlyOwner() {
    if (msg.sender == owner)
      _;
  }

  //ownership can be transferred to provided newOwner. Function can only be initiated by contract owner's account
  function transferOwnership(address newOwner) public onlyOwner {
    if (newOwner != address(0)) 
        owner = newOwner;
  }

}
/**
 * Contract "Ownable"
 * Purpose: Defines Owner for contract and provide functionality to transfer ownership to another account
 */
function Ownable() public {
  owner = msg.sender;
}

//Constructor for the contract to store owner's account on deployement