Genetic programming 2 - automatic discovery of reusable programs