implement a visitor can access all variable & method invocation