Thanks everyone, I have started the journey into Interfaces (the idea of the automatic cleanup appeals) though for this specific issue a less complex method will suffice, as there will only ever be one engine, one session and one database component.
I hope others find the discussion as informative as I have.