make JSImplementation value-free