1. add exception against k; 2. use general access type