refactored widget to use iframe