Allow different initialisation algorithms
Compute V in one go
Few optimisations
Use full derivative function