Please do not define your own widget system. Why aren't we just using the mechanism that's in place already?