You can probably still serialize it, but you need to use some more advanced techniques like a
serialization proxy. In short, instead of serializing instances of your Sequencer sub class, you serialize a replacement (
writeReplace). In turn, this replacement will return a newly created instance of your sub class when it's deserialized (
readResolve). This way you can call any constructor you want, as long as you have its values.