Refactored the multi-callback widget and added tests