The design attempts to separate the functionality of the calculator from the interface and to construct the calculator in a modular fashion. In so doing we simplify the use of the core code outside the user interface if necessary. In addition, it allows us to modify modules internally without affecting others; for example the internal representation and primitives for dyadic digits could be modified--and indeed were--without affecting any of the higher level algorithms using them.