Added AbstractButton/ButtonStatus and refactored ButtonStates