1. A method comprising: connecting a plurality of nodes into a neural network, each one of the nodes represented by a programming object; defining a condition for cloning one of the plurality of nodes into a second plurality of child nodes where the one of the plurality of nodes is configured to autonomously clone and remove child nodes and the condition includes a recognition that the one of the plurality of nodes is of insufficient complexity to process inputs; and when the condition is met, autonomously cloning the one of the plurality of nodes into two or more child nodes.