Enum type impl, type cast impl, some types corrections