should support the require option