redefine the type interface
implementing type subsytem