Added widget feature to solve #7