more consistent get_keys