Made algebraic types sorta work