Make quite usable
Add some comments
Minor bugs and add Scala translation
Add scala translation