Make List an interface I don't plan to provide a different implementation, but this gives me the flexibility. Code using ps.List without an interface smelled wrong in all the clients. This should have a cleaner feel.