better collect method, smaller footptrint, disable setbutton