feat(defer): add module "defer"