widget class and subclasses, parser