Require option added. Loading refactored. Unload refactored