refactor bttn