Changed button implementation to use BasicButtonListener behind the scenes. Also implemented disabled button.
Moved toward using type safe factory creation methods.