there are many different kinds of library