adding fully functional spin and reverse spin