with the doctrine stuff, this is actually a CmfDoctrineMedia or something like that.

regarding the backend specific actions (i.e. move) we could also make this abstract and declare abstract protected method that encapsulate the specific behaviour, then extend it for each backend.