added reverse controls, label, and untested setmin/max