Node Preservation and its Effect on Crossover in Cartesian Genetic Programming