Use algebraic types instead of strings