some refactoring in Skill