Swapped the order that exists is run so that a callback is available when exists is run.
Added a todo for a potential problem