Spin based electronics