changed to dynamic checks in exists?
added extra checks (loops) to ensure that all criteria a matched