All of those 3 can be replaced with just basic Type interface giving users more flexibility to define types