sync with igor refactor