added comments and changed SO types to IsType
re organising types
comments and more character sets