He followed this idea by creating (with Stanislaw Ulam) a purely logic-based automaton, not requiring a physical body but based on the changing states of the cells in an infinite grid – the first cellular automaton. It was extraordinarily complicated compared to later CAs, having hundreds of thousands of cells which could each exist in one of twenty-nine states, but von Neumann felt he needed the complexity in order for it to function not just as a self-replicating "machine", but also as a universal computer as defined by Alan Turing. This "universal constructor" read from a tape of instructions and wrote out a series of cells that could then be made active to leave a fully functional copy of the original machine and its tape.