each introspection function now takes context as its first argument