added more types and comments