Make API simpler but zoom-aware per #2