Why is it bad to put init_words at the end of init_prims, instead of calling init_words in main? Does this still cause an error now that we've robustified pc and other things? Write FORGET. Make colon handle "recursive" definitions all right. As in, ": foo foo ... ;" Variable length names. Implement strings. - Strings will live in the dictionary, too. There will be a function, string_handler or something. It takes the address of a string (starts with a count byte/word, then the string itself, null-terminated for friendliness to C functions. Must decide on byte vs. word. Well, word is right for regular strings, but byte might be nice for the entry names... though word could do too there.) Anyway, what this function does is push the address and length of the string on the stack. Other primitives are used for displaying, outputting, whatever. Hey, the function must increment the PC past the string and to the word right before the next PFA. Need to write a macro which takes care of alignment automatically... Implement variables. - Variables will live in the dictionary. They get a word, whose name is the name of the variable. The CFA points to variable_handler(), a function which pushes the next PFA on the stack when run (that is, the address of the PF). It does this simply by pushing (PC + 1). After that, you use standard ! and @ operations to work with the variable. Implement arrays. - Better brush up on Brodie before doing this.