template deconstruction complete