add buffer::clone to replace set::clone (not implemented yet)