add basic visitor use case
rename visitor to visitor interactor for clean separation with business models