refactor visit tracking to Job class