Se dividen en tres categorías, las cuales se dividen a su vez en varias subclases: