An abstract and an interface that all widgets will adhere to.