Refactoring
Update: implement orientation change
Update: pinch zoom