And in general, please add some comments to explain what is going on :)