blocks need a name too if just for debug, and stacks
seems to make the essence clearer also extracted base class
and split a base class off TypedMethod