better ranges
update method should mark object as not dirty
gate should scale to rate
allow skipping constraint, use ceil for floats
test scaling gate
version bump