fixed so imag^2 and split into different classes