Functionalize gradients
The current implementation of gradients is pointlessly OO and it makes it harder to reuse components. This switches over to a more functional driven approach.
The current implementation of gradients is pointlessly OO and it makes it harder to reuse components. This switches over to a more functional driven approach.