A graph homomorphism is a map from vertices to vertices such that adjacent vertices remain adjacent. Two graphs are homomorphism-equivalent if there are homomorphisms in both directions. A graph is said to be a 'core' if all endomorphisms are automorphisms. Every finite graph $G$ maps onto a core, and this core is unique up to isomorphism; moreover, the core can be obtained as an induced subgraph that is the image of an idempotent endomorphism of $G$. So some problems in finite graph theory reduce to problems about cores in the same way that some problems in finite group theory reduce to problems about simple groups.