re-name next() to be more descriptive or add comments to explain functionality