This looks like a similar implementation as the other sorter uses - is this something that should just be inherited from the base panel class?