add widget functions