Add charge work:

Sorted out some validation issues.
Major refactor and clean up of app