add require support