major button refactoring