BlockDerivative: initialize in first run

Commonly its better in the program flow if you can assign two values to assign either of these values. The code here doesn't make it immediately obvious what is going on. I'll push another commit to increase efficiency.