Part 3/5 for issue #9.