moving changes from java_rewriting_engine4 branch