a runnable version before split by gearman
merge