complete refactor to allow stateful drools session reuse