change the key schemes to allow partials
update tests