Since the declaration of an abstract class rather than interfaces, there must have some defauts that know the needs of a client and I think the recharge/shut down task should be one of them.
Hey, no more. I am not a programmer and not a good UI guy either