More elegant collection allocation