REFACTOR charge.empty -> charge.edited? continued... also moved validation into private method