Replaced type dependency of self-replacement in instrumented types with name resolution. Added support for writing annotations.
Refactored interception containers in order to allow for annotations.