Add almost all types, missing one function.