API refactor - Chapter 10