who uses this for what? it is confusing that this type is returned by rather different functions on both “sides”