remove boost::shared_ptr(NULL) cause it will cause trouble with some lower version of gcc. remove typename in test cases