M: supports template type