Rework widget loading and rendering