require delegation module