constrain instead of map