refact c1 and c2
refact c3
c4 refact
c5 refact
commons refact