other refactor