change way OptionsArea is updated, removing unnecessary repaint()s