contract IModuleRegistry {

    /**
     * @notice Called by a security token to notify the registry it is using a module
     * @param _moduleFactory is the address of the relevant module factory
     */
    function useModule(address _moduleFactory) external;

    /**
     * @notice Called by moduleFactory owner to register new modules for SecurityToken to use
     * @param _moduleFactory is the address of the module factory to be registered
     */
    function registerModule(address _moduleFactory) external returns(bool);

    /**
     * @notice Use to get all the tags releated to the functionality of the Module Factory.
     * @param _moduleType Type of module
     */
    function getTagByModuleType(uint8 _moduleType) public view returns(bytes32[]);

}
/**
 * @title Interface for the polymath module registry contract
 */
function registerModule(address _moduleFactory) external returns(bool);

/**
 * @notice Called by moduleFactory owner to register new modules for SecurityToken to use
 * @param _moduleFactory is the address of the module factory to be registered
 */