Change pass-by-const-ref to pass-by-value as objects are recreated due to custom up-/down-casting anwyway.