Add pforEach, cleanup and rename