type safe templating

Features