reconstruting type management(there is something wrong with type)