 import Foundation
 
-class KVO: NSObject {
+public class KVO: NSObject {
 
 	public enum Errors: Error {
 		case invalidKVO(String)

	
	// MARK: - Functions
	
	func startObserving(_ observable: NSObject,
		forKeyPath keyPath: String,
		options: NSKeyValueObservingOptions = [.new, .initial],
		selector: Selector) throws {

			context: nil)
	}
	
	public func stopObserving(_ observable: NSObject, forKeyPath keyPath: String) {
		// Skip if keypath isn't mapped.
		guard let context = _contextForObservable(observable),
			context.keyPathBindings[keyPath] != nil else {
