added visitor code