optimize using require