refactory orderedCollection complete