pinger refactor, 4th chapter