Spent way too long figuring out why messages in the bottom were removing from the beginning even when I was changing between shift or pop to remove first item.  Spoiler Alert: track by index in your ng-repeat does not work well when removing things that are all duplicates :)