adding forAll. still very rough