         -> ValueObservation<ValueReducers.Raw<Request.RowDecoder?>>
         where Request.RowDecoder: DatabaseValueConvertible & StatementColumnConvertible
     {
-        return ValueObservation<ValueReducers.Raw<Request.RowDecoder?>>(
-            tracking: request.databaseRegion,
-            reducer: ValueReducers.Raw(request.fetchOne))
+        return ValueObservation.tracking(request, fetch: request.fetchOne)
     }
 }
 

    public static func trackingCount<Request: FetchRequest>(_ request: Request)
        -> ValueObservation<ValueReducers.Raw<Int>>
    {
        return ValueObservation<ValueReducers.Raw<Int>>(
            tracking: request.databaseRegion,
            reducer: ValueReducers.Raw(request.fetchCount))
    }
    
    /// Creates a ValueObservation which observes *request*, and notifies a

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