def bind_target(self, target, ctx=None):
        """Bind self annotation to target.

        :param target: target to annotate.
        :param ctx: target ctx.
        :return: bound target.
        """

        # process self _bind_target
        result = self._bind_target(target=target, ctx=ctx)

        # fire on bind target event
        self.on_bind_target(target=target, ctx=ctx)

        return result