Files to be reviewed

This seems weird to me from an interface perspective. You're returning something different if the array has one item vs. having multiple items? So, if you have one service, you get a backend, but if you have two or more, you get a StorageBackEndCollective with a backend as one of its attributes?