modify widget interface for lua