all tests pass both in js and jvm
tweak
reorganized to share code between JvmFramework and JsFramework