abstract contract SingleCreatorExtensionBase {
    address internal _creator;

    /**
     * @dev Override with appropriate interface checks if necessary
     */
    function _setCreator(address creator) internal virtual {
      _creator = creator;
    }

    function creatorContract() public view returns(address) {
        return _creator;
    }
}
/**
 * @dev Extension that only uses a single creator contract instance
 */
function _setCreator(address creator) internal virtual {
  _creator = creator;
}

/**
 * @dev Override with appropriate interface checks if necessary
 */