Template Based Programming