Make widgets smart enough to build themselves