added UI generators and implemented two more patterns