TOM is a compiled object-oriented programming language that advocates unplanned reuse of code. To this effect, in TOM a class is defined by its main definition plus any extensions; an extension can add methods, variables, and superclasses to a class, while the class' source is not needed and does not need recompilation, nor is recompilation required for any client code or subclasses. Extensions can even be loaded at run time.