n be divided into five types, which are struct