Gypsy was the first document preparation system based on a mouse and graphical user interface to take advantage of those technologies to virtually eliminate modes. Its operation would be familiar to any user of a modern personal computer. It was the second WYSIWYG document preparation program, a successor to the ground-breaking Bravo on the seminal Xerox Alto personal computer. It was designed and implemented at Xerox PARC in 1975 by Larry Tesler and Timothy Mott, with advice from Dan Swinehart and other colleagues. The code was built on Bravo as a base and the developers of Bravo, including Tom Malloy, Butler Lampson and Charles Simonyi provided technical support to the effort. It was produced for use at Ginn & Co., a Xerox subsidiary in Lexington, Massachusetts which published textbooks. Although similar in capabilities to the then-current version of Bravo, the user interface of Gypsy was radically different from that of Bravo. In both Bravo and Gypsy, a command operated on the current selection. But Bravo had modes and Gypsy didn't. In Bravo, the effect of pressing a character key depended on the current mode, while in Gypsy, pressing a character key by itself always typed the character. The difference can be illustrated by three examples: 1. Insert In Bravo's Command Mode, pressing "I" entered Insert Mode. In that mode, pressing character keys typed characters into a holding area ("buffer") until the Escape key was pressed, at which time the buffer contents were inserted before the selection and the editor returned to Command Mode. In Gypsy, no command or buffer was needed to insert new text. The user simply selected an insertion point with the mouse and typed the new text. Each inserted character went directly into the document at the insertion point, which was automatically repositioned after the new character. 2. Replace In Bravo, to replace existing text by new text, the user pressed "R" to enter Replace Mode. That mode was just like Insert Mode except that the buffer contents replaced the selection instead of inserting text before it. In Gypsy, to replace text, the user simply selected the old text and typed the new text. As soon as the user began to type, Gypsy deleted the old text and selected an insertion point in its stead. 3. Copy In the then-current version of Bravo, the user selected the destination, pressed "I" or "R" to enter Insert or Replace