whoops, infinite loop, this should be better