add support for ::self reference