Predicate Logic translation from English to formula

I am studying for an exam and I have these exercises, I have solved.

Let:
Monkey(x) = "x is a monkey"
Intelligent(x) = "x is an intelligent being"
Likes(x, y) = "x eats y"

  1. No monkey eats a rock.

let Tigers(x) = "x is a tiger"

∀x(Tiger(x) => ∀y¬Eats(y, x)

  1. There exists an intelligent monkey.

∃x(Monkey(x) => Intelligent(x))

  1. Every monkey likes another monkey

∀x(Welshman(x) => ∀yLikes(y, x))

  1. There is only one smart monkey who likes all other monkeys

∃!x(Witty(x) => ∀yLikes(y, x))

I could use some feedback, please.