Example solution. Not perfect, and can probably be improved. I dont like my SortObserver implementation.