combine order and unordered version