Add a generic visitor implement