Refactoring Collections.

Making them less restrictive, slightly more intuitive and adding some utility methods.