widgets use internal engine reference for update & draw