do we really need AbstractMedia and AbstractBaseMedia? or could we merge the 2 together? (did not read the classes, maybe its not possible. just a feeling that there is a lot of classes and AbstractBaseXXX starts to sound like Java :-)