split responsibilities