Non-uniform Cellular Automata