Refactored again to make complex gestures a little more straight forward