get all data first then refine