The serialization is not quite on par with the static code, deserialization is quite a bit faster.
Also allows creating a new controller type (albeit with not optimal performance) at runtime.