context-sensitive shaping