builds sort options programmatically to (hopefully?) clean that up a bit and leave a bit more wiggle room for conditional behavior