refactored background