Now snapshotmanager should be able to write to outputtargets as well. we should just let higher-levelled classes inherit from OutputTargetWriter and react on events of their inner-used ones.