Updated answer once more with some comments