A network of interconnected references that can hold arbitrary data is used to run a sequence of computer-code-like steps that perform a core learning process on the system itself. The learning process involves using existing heuristics and habits, to produce better heuristics and habits to use. The process to learn is the system itself: for example, what norms can we establish to keep our memory use bounded while we run. Or, craft a habit that produces a descriptive structure of the last link made, outputs a log whenever you do something, redoes everything you do but with all arguments wrapped in a structure, or does the same thing as you but with a different set of inner habits. - work with me to annotate every habit with enough information to plan around it - construct norms (generalized habits) that can handle discovering a false assumption (like data all processed to have a structure) midway through a task, fixing it, and continuing on withouy restarting the task. - stop pursuing a goal midway, and then resume it precisely after doing something else for a bit Level 0 should be low level enough to provide for arbitrary flexibility. There shouldn't be decision-making challenges with regard to exposing an interface at level 0. Rather, decisions should be makeable by its user. The topmost C++ level should be expressive enough to easily code all of level 0 into habits that interconnect, and produce one to select some of them and run them together. The levels together should provide a library that can be used exclusively to work on the system, without resorting to external libraries.