#6 add gather_keys