modified require