Fully rewritten with vicious
Fully rewritten with vicious