refactor how cloning works
fix specs for clone refactor