Widgets abstaction library