refine DO
add  docs