Moved property introspection to a more general function