You are working with a team to create a new application for keeping track of the inventory of a chemistry lab. Your application consists of lots of types that all participate in making sure that items are not used by unqualified personnel, dangerous chemicals are not used in the same room, and items are ordered as soon as the stock is running low. Currently, all types in the system have different access modifiers. Some types are completely immutable; others expose all their data. You are discussing the current problems with a colleague. He argues that all types and all type members should be public.