Shaping abstraction