modify skill interface, split skill.go to different files