modified begin()