Move Type to a first class citzen