finished my tasks, but checkout refactoring needs testing
combined our checkout charging code