this typehint should vary as well