refactoring completely to remove E4X and perform another harvesting