Split format-specific dependencies into format-specific abstract loaders

Also better class names,