1. fix changing compoent bug