Keeps the non-member interface in one spot instead of split into two places, making it nicer to locate functions.