interesting use of templates