Though codifiability is a central characteristic, it does not capture other aspects of knowledge. Knowledge can vary in complexity. There are many ways to define complexity. From a computer science perspective, it can be defined as the number of operations (or CPU time) required to solve a task. Indeed, Simon's notion of nearly decompose systems is closely related. An ordered system reduces the cost and necessity of complex communication patterns. Drawing upon information theory, Pringle (1951) draws the distinction between order and complexity, defining the latter as the number of parameters to define a system. Within any given ordering (or what we call a code), complexity can be accommodated, but at a cost.