refactory
PrinCv1