multiple refactor changes