a method of charging a battery pack is provided . the method includes : electronically connecting a battery pack to a charger ; detecting information regarding the battery pack ; determining an appropriate charging regime based on the detected information ; and applying the charging regime to the battery pack . a battery charger may also provided . the battery charger includes : a first terminal for connecting to a battery pack ; a second terminal for connecting to a battery pack , a microprocessor operatively connected to the terminals and configured to receive a signal from at least one terminal regarding a battery pack connected to the terminal and control the charger to select and apply a charging regime to the battery pack according to the signal .