added fragment caching yet still need to check some edge cases as well as player stuck after download