added custom iterator for no reason whatsoever