goíng to rewrite that piece
Added OverloadedStrings extension
Create seperate module for the Type functions