This document discusses advanced reflection capabilities in Pharo. It describes how instance variables were previously just described as strings, but can now be modeled as objects using a layout and slot system. Classes have a layout object that describes the memory layout. Slots know how to read and write values. Different types of slots are discussed like typed slots. The document also talks about modeling method structure as abstract syntax trees of node objects, allowing sub-method reflection. Future work includes making ASTs ubiquitous and using meta-links to annotate ASTs to modify code behavior without changing the source.