@Heikman 
- Is there any special meaning for the default parameter? (Can we set default to zero?)
- Why there is a dummy parameter in the template param list? (Can we skip the dummy?)