public WorkingMemory newWorkingMemory(InputStream stream, boolean keepReference)
      throws IOException, ClassNotFoundException {

    final ObjectInputStreamWithLoader streamWithLoader =
        new ObjectInputStreamWithLoader(stream, this.packageClassLoader);

    AbstractWorkingMemory workingMemory = (AbstractWorkingMemory) streamWithLoader.readObject();
    workingMemory.setRuleBase(this);

    return workingMemory;
  }