it should typehint `ContextInterface` no?