use newtypes for template ids, pros: 1) enforces id validation 2) ease of use (helper method for getting template struct right away)