reenable generic statement visitor and rename it to something more generic; fix compilation error caused by name look ups (member method not depend on template parameter needs to be explicitly qualified.).