#4522 refactor code into indepentent widget and tracker