Have you considered putting common visitor implementations in albedo?