update with logic to not clone every time