separate method for per-provider cache clearing logic + get rid of push()