Updated the collections to it's more flexible to implement in other systems