Redesign of Data type and type instantiations