might be more clear without overloaded method names
`process` vs `processPersistent`?