widget definitions