it is divided into five types