Sure we do provide full reflective capabilities so given a type I can inspect what type that is, what it's ancestor hierarchy is, what fields it has, what methods it has etc.. So I had that capability that you would find in Java. Now however we do have this very very rich infrastructure that I talked about this attributal programming declarative model of where I can as a programmer create my own attributes, create my own way of declaring different functions on top of a type, on top of a method, on top of a field and what this gives is the capability of doing such things as aspect oriented programs, framework or part of a framework you could utilize to work in an aspect oriented piece to that application. Now we also support reflection of mission and let me talk briefly about that. That gives you the capability of generating code on the fly and that in concert with these attributes could give you, you know an awsome capability to do pre and post processing etc.. on a given method call. So it gives you this very rich capability of generating code and logic and types and fields and methods on the fly.