process and return results. keep ordering