ComplexNumber first version