Got used to the code by rewriting parts of it.
* Added tests
* Made initialising from scalar more robust
* Imposed an addition/subtraction limit on N.