use swig templates