implement research_update_uncompleted_types and refactor research