this test shows that we can indeed let return type of
Enum to change its content, if we make old and new protocol to have
the same class and package names.

but then we can't compile the old server and new client together, since
they occupy the same packages and class names. they can't run in the same JVM
