4 free ways to hot-swap code on the JVM