aplicado o strategy no guard, e retirado as funções de geração do specification