Added argument processing and visitor system