Reimplemented widget concept

Objects are no longer, Widget is now the base the custom widgets are
constructed on.