add range iteration and toObject transformation