In this paper we investigate the implications of Java’s dynamic proxies for supporting open architectures to implement reusable code. Dynamic proxies are interpreted as meta-objects, which define the behaviour of other objects and allow the implementation of meta-objects protocols.