Protocols for the APIs