only need `.clone` on top function