cleaned up a bit more and added snapping and knob reset