Describe how you would implement coulomb counting in a battery management system to estimate state of charge, and how you would correct for drift over time.