Wzorzec template, visitor i singleton