allow any order and with gaps