Major frontend change: added button(), handle actions, and more. Backend: handle actions.