Is there a word for an individual who has wrong moral values? I was thinking about "hypocrite", but I'm not sure.
I'm looking for a noun, rather than an adjective. It may also be informal and shouldn't be too strong or too insulting. Imagine a teenager, who is still adjusting his principles and values.