Completed the integration of the new addition functionality

I am not sure if pure and @safe should be used on constructors.
They are used at the moment to allow the ctor to be used by
opBinary.