         -> ValueObservation<ValueReducers.Raw<Request.RowDecoder?>>
         where Request.RowDecoder: DatabaseValueConvertible
     {
-        return ValueObservation<ValueReducers.Raw<Request.RowDecoder?>>(
-            tracking: request.databaseRegion,
-            reducer: ValueReducers.Raw(request.fetchOne))
+        return ValueObservation.tracking(request, fetch: request.fetchOne)
     }
     
     /// Creates a ValueObservation which observes *request*, and notifies a

        ValueObservation<ValueReducers.UniqueRecord<Request.RowDecoder>>
        where Request.RowDecoder: FetchableRecord
    {
        return ValueObservation<ValueReducers.UniqueRecord<Request.RowDecoder>>(
            tracking: request.databaseRegion,
            reducer: ValueReducers.UniqueRecord { try Row.fetchOne($0, request) })
    }
}

        -> ValueObservation<ValueReducers.UniqueValues<Request.RowDecoder>>
        where Request.RowDecoder: DatabaseValueConvertible
    {
        return ValueObservation<ValueReducers.UniqueValues<Request.RowDecoder>>.tracking(
            request,
            reducer: ValueReducers.UniqueValues { try DatabaseValue.fetchAll($0, request) })
    }
    
