rewrote section on union types