Calling the function with an invalid object results in a undefined state of the questionnaireEngine. Also, it might be easier to have the version and time Of Execution as function arguments instead of inside or left out if they are not used anyway.