Support smart pointer
Support smart pointer (retry)
Merge https://github.com/katahiromz/caper