added xpp visitor