Annotation items with links thus have the connotation of being arbitrary cross-references (a la "See Also...") and thus are not seen by users, and more especially agents, as part of the hierarchical structure of the hypertext. Another major distinction between KMS and current web practices is the elimination of a separate editor mode. Navigation and editing functionality is always directly available and users can edit any frame for which they have permission. Authors can even protect frames from inadvertent editing even by themselves. Older versions of frames are saved in 'comet-like' linked list so one can see the history (and time spent) for any individual frame (and more generally, those in any tree). Finally, KMS contained a script programming language (akin to JavaScript) which enabled developers and users to extend the system beyond its current functionality. In keeping with the KMS philosophy of 'Everything a frame' (e.g., cursors, fillpatterns, etc., are represented as frames) so programs are also represented as hierarchies of frames; KMS dynamically read and interpreted only those program frames needed at runtime. KMS was originally written in Pascal and C, roughly 300,000 lines of code in size. A more modern, Java-based follow-on to KMS (called "Expeditee") is being developed at the Computer Science Department of the University of Waikato in New Zealand, by Rob Akscyn, one of the original developers of KMS.