What is the relationship between topology, functional analysis, and group theory? All three seem to overlap, and I can't quite see how to distinguish them / what they're each for.