refactor using cljx instead of crossover