Co-evolution in ecosystems