refactored forall tool, but it's still not fully functinoal