rename and add some switch