charge factories bug on charge_cycle making new charge_cycle instead of assigning. Fixing associated spec and refactoring charge_factory