consistent return types