move exists? checks to providers out of cli module