use cmap and chain in update task