Due to their flexibility, proxies have been used for various purposes in standalone and distributed applications. More specifically, object-level proxies support fine grained capabilities and offer the potential to transparently (i.e. with minimal human intervention) inject proxy-based functionality into an ordinary application. Consequently, several solutions based upon code transformation for addressing various limitations of transparency in existing approaches are considered and evaluated. Furthermore, the automation of the majority of the required code transformation has been implemented, which along with the deployment of various (proxy-based) adaptive and test applications, demonstrates the transparency, correctness, flexibility, and practicality of the solution. As the solution was presented in terms of Java, the discussion involves Java-specific characteristics; however some of the more general concepts should be useful for addressing similar issues in other object-oriented la...