updated complex number object, more consistent approach