start using tags for type rather than type keys