modified: implement loading icon