What about having a bunch of functions more close to our model here. e.g. if we want to add call info, something like `AddCallInfo`, where we could do some checks on the persistence layer. 

For instance, if we're getting rejected because of a duplicate column or something like that, we could return a specific error about that in the persistence layer, whereas the factorized version (addOne / getOne) doesn't allow that.