fix optionalrequire