generic type processing.