added union and clone