Refactor Ability model