if you're gonna update the ui outside of the ui thread you're gonna have a bad time
refactored gauge widgets to have a single inheritance chain; fixed updating UI outside of UI thread (gonna have a bad time); added touch events