add support for $self