Hmmm, now I'm not quite certain what you are asking. Let me list some component pieces and maybe you can fill in the detail of what you're trying to do.
1. GraphLoader takes ProcessDefinition (XML or otherwise) and using the GraphFactory, creates Graph instances in the GraphRepository.
2. You can then pull Graph instances from GraphRepository.
3. Given a Graph instances you can create a GraphProcess using the GraphFactory
4. The Engine can then execute the GraphProcess (using GraphFactory again to generate tokens).
So if you have your own graph/node/arc structure, you could
1) implement the graph/node/arc interfaces in your classes
2) Create Graph/Node/Arc adapters which wrap your classes (I would think you could subclass the Mem... classes for this)
3) You might not need to do either, you could maybe just create MemGraph/MemNode/MemArc arcs to mimic the structure you have and then have only the nodes call into your custom logic.
Anyway, you shouldn't _need_ to subclass BaseEngine, but you could subclass MemEngine to override the getRepository method.
So, let me know if any of that helps, and if not, maybe you can fill in some more details of what you're trying to accomplish.
cheers,
Paul