add primitive type-cast supports