I wanted to be DRY, and the cost of reflection does not matter here.