Final version. Ready to be submitted. Enjoy :D