if a[:position] && b[:position]
              a[:position] <=> b[:position]

            else
              # TODO why do we still have this?