more work on forall