No tail-call optimization in Java
Deleted unused code
Consistent naming
Better stringify function