Make API simpler but zoom-aware per #1