more correct q-value updates