add new BetterButtonAction class, code cleanup, remove namespacing
merge changes from master