multiple refactor