add chraging support!  battd can be removed after fixing percenatage calculate