breaks balanced customer and token out into separate method with tests