working well in abstraction again