TODOs mentioned in #13 are covered in the patch. I made some slight improveme...