2d abstraction