2nd pass on widget system