Improve next impl -- needs refactoring