Implement protocol as defined internally.