updated forEach to simpler implementation, fixed tests, then added new (unimplemented) tests that are better in their explanatory power of forEach