The library should allow lazy and strict instantiation of metadata objects.
Currently, strict is supported.
But lazy instantiation should also be available, where the library fully reads in the assembly and then instantiates metadata objects as they are requested (using an if (_backingField == null) { Instantiate(_backingField); } return _backingField; property pattern.