IK refactor and Improvements