updating Q fn