The second component of BACnet is the definition (and encoding into binary format) of messages that building automation and control devices may need to send to each other. Because BACnet is based on a "client-server" communication model, these messages are called "services" which are carried out by the server on behalf of the client. As an example, the "ReadProperty" service is used to read the value of any property of any object in any BACnet device. The original standard defined 35 services in the 5 categories shown above. Six more are currently in various stages of adoption.