In this paper we show how almost any object oriented program can be
transformed into another program that has the same functionality as
the original program, but has the additional feature that its code can
be updated at runtime. In particular, we allow updates where classes
in the object oriented programs can be replaced with classes whose
code is different. The interesting thing is that this
transformation does not require any support from the runtime
system. We also introduce a new tool that we wrote which can rewrite
(almost) any Java program so that it can support dynamic update.