 import Foundation
 
 #if os(iOS)
-import MobileCoreServices
+	import MobileCoreServices
 #elseif os(macOS)
-import CoreServices
+	import CoreServices
 #endif
 
-class UTI: RawRepresentable, Equatable {
-
-	enum TagClass: String {
+public class UTI: RawRepresentable, Equatable {
+
+	public enum TagClass: String {
 
 		case fileExtension = "public.filename-extension" // kUTTagClassFilenameExtension
 		case mimeType = "public.mime-type" //kUTTagClassMIMEType


#if os(OSX)

extension OSType {


	/// Returns the OSType encoded as a String.
	
	var string: String {

		let unmanagedString = UTCreateStringForOSType(self)

		return unmanagedString.takeRetainedValue() as String
	}


	/// Initializes a OSType from a String.
	///
	/// - Parameter string: A String representing an OSType.

	init(with string: String) {

		self = UTGetOSTypeFromString(string as CFString)
	}
}

#endif

	/// - Parameter value: The value of the tag.
	/// - Parameter conformingTo: If specified, the returned UTI must conform to this UTI. If nil is specified, this parameter is ignored. The default is nil.
	/// - Returns: An UTI instance representing the specified rawValue. If no known UTI with the specified tags is found, a dynamic UTI is created.
	/// - Note: You should rarely need this method. It's usually simpler to use one of the specialized initialzers like
	///  ```convenience init?(withExtension fileExtension: String, conformingTo conforming: UTI? = nil)```

	public convenience init(withTagClass tagClass: TagClass, value: String, conformingTo conforming: UTI? = nil) {
