type = internal
before = before_self
