Add methods to create providers and visit each by method visitor