Significantly changed the way updateLogicalState