break out engine into its own file and define a builder interface to mix in with a netty.Server