added self dual
pulling self dual
merged two versions of self dual