use the register idiom for strategies