Each class of object is listed and stored on its own worksheet—the Rule Sheet, Variable Sheet, Unit Sheet, etc. Within each worksheet, each object has properties summarized on subsheets or viewed in a property window. The interface uses toolbars and a hierarchal navigation bar that resembles the directory tree seen on the left side of the Windows Explorer. The declarative programming structure is embodied in the rules, functions and variables that form the core of a mathematical model. Rules, variables and units All rules are entered in the Rule Sheet or in user-defined functions. Unlike a spreadsheet or imperative programming environment, the rules can be in any order or sequence and are not expressed as assignment statements. "A + B = C / D" is a valid rule in TK Solver and can be solved for any of its four variables. Rules can be added and removed as needed in the Rule Sheet without regard for their order and incorporated into other models. A TK Solver model can include up to 32,000 rules, and the library that ships with the current version includes utilities for higher mathematics, statistics, engineering and science, finances, and programming. Variables in a rule are automatically posted to the Variable Sheet when the rule is entered and the rule is displayed in mathematical format in the MathLook View window at the bottom of the screen. Any variable can operate as an input or an output, and the model will be solved for the output variables depending on the choice of inputs. A database of unit conversion factors also ships with TK Solver, and users can add, delete, or import unit conversions in a way similar to that for rules. Each variable is associated with a "calculation" unit, but variables can also be assigned "display" units and TK automatically converts the values. For example, rules may be based upon meters and kilograms, but units of inches and pounds can be used for input and output. Problem-solving TK Solver has three ways of solving systems of equations. The "direct solver" solves a system algebraically by the principle of consecutive substitution. When multiple rules contain multiple unknowns, the program can trigger an iterative solver which uses the Newton–Raphson algorithm to successively approximate based on initial guesses for one or more of the output variables. Procedure functions can also be used to solve systems of equations. Libraries of such procedures