Please explain the justification for composition over inheritance in the relationship between FSDatedRadixTreeStorage and FSRadixTreeStorage