uses clone instead of dup