add constructor and implementation operator +