delegate docs
refactor