Rewrite of the whole project to a more standard form.

Everything works as previous except sometimes you need to refer to variables and methods using "this".