added internal steal and merge