added until_exists, between_exists and immediatelyPrecedes