Updated widget service to use promises