templated active object