added some part logic