preliminary rework of constraints
macro support for range constraints