Interface classes for Protocols API