fade refactor