Updated template construtor