Make getCharge abstract and move it to subclasses