use static assertation where suitable