To keep your classes properly encapsulated, I've learned (from others and my own experience) that it's usually a good idea to expose collections only as IEnumerable<T>, until the need arises to elevate it to a higher type. In keeping with this, it can sometimes make your unit tests less...