refactor the csdn support