some fixes to Widget, added array.filter