array observer sort improvment