Convert `Descent` to prototypical object.

Closes #379.