done code, but no device to test and fix exception, so I will fix thas on this satday