don't use stale values?
hanlde % values in zoom by doing full recomputation
I'm pretty sure that this was wrong to begin with...