refactored all require code on util.requirem