many changes in runBackward, look at calculateOutputErrors, calculateErrors etc. for more changes