Adds Widget abstraction