allow passing custom template at initialize without extending as well.