implement processing flow