Using a new class to work with associations

Following the [Open Closed
Principle](http://en.wikipedia.org/wiki/Open/closed_principle) will
assure nothing will break since the original `Collection` class will
remain the same.