refactor Background