Some implementations might require some other type of content. Like CMIS API required some other class as far as remember, so using ContentFile in Abstract implementation might not work for all cases.