the typehint should be the interface