implemented Charge