There are certain features that are common to all of them, but they are implemented in totally different ways, and they all return completely different objects None of them follow the same conventions ...