See #78 for design details.
See #78 for design details.