better args/visitor interaction, cleaner tests