         
     }
     
+    /**
+     * Reactively delete object
+     */
     public func delete() -> SignalProducer<(), RealmError> {
         return SignalProducer { sink, d in
             do {

//MARK: Saving
public extension Reactive where Base: Object {
    
    public func save(update: Bool = true, writeBlock: ((Realm)->Void)? = nil) -> SignalProducer<Base, RealmError>{
        return SignalProducer<Base, RealmError> { sink, d in
            do {


//MARK: Table view


/// Protocol which allows UITableView to be reloaded automatically when database changes happen
public protocol RealmTableViewReloading {
    associatedtype Element: Object
    var tableView: UITableView! { get set }
}

public extension Reactive where Base: UIViewController, Base: RealmTableViewReloading {
    
    /// Binding target which updates tableView according to received changes
    public var changes: BindingTarget<Change<Results<Base.Element>>> {
        return makeBindingTarget { vc, changes in
            guard let tableView = vc.tableView else { return }
