improve def strategy