added complex algebra