yay refactor