1. refresh functionality impl
2. design change to avoid fragment memory leak