Few small changes and comments. I would like to extend it a bit more in the future - to support properties like "${property}" without a string conversion. In other workds, if a dynamic property is used ( which return an object ), the object should be used as such in the introspection. That would greatly simplify tasks and allow more flexibility.