changed visibility of button classes to package-private
implemented basic ButtonController functionallity