Ethan is nice but it has a soft and weak sound. It is also kind of trendy.
William is a name that you cannot go wrong with IMO. It is strong, classic, has lots of history, and has plenty of nn potential that suit all different kinds of ages and personalities.