strongly typed template
Revert "strongly typed template"

This reverts commit 779360b7ba9b6e199a84ad43027e114943a2b5c5.