refactor + delegate
update infos