FYI technically, passing runPrincipal by value is fine here since it can't be modified.