implemented multi property sorting