Improves loading feedback and allows attributes to be passed through promise creation