sort once at startup