use introspection helper for better compatibility