added custom widget feature