only setup widgets when needed