move support: optional class template