It works.
Few unchecked calls remain, I'll correct them in the next commit and add commentaries