redo qc-list-dict to be faster