<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def get(cls, device_id, custom_headers=None):
 """ Get a single Device. A Device is either a DevicePhone or a DeviceServer. :type api_context: context.ApiContext :type device_id: int :type custom_headers: dict[str, str]|None :rtype: BunqResponseDevice """


        if custom_headers is None:
            custom_headers = {}

        api_client = client.ApiClient(cls._get_api_context())
        endpoint_url = cls._ENDPOINT_URL_READ.format(device_id)
        response_raw = api_client.get(endpoint_url, {}, custom_headers)

        return BunqResponseDevice.cast_from_bunq_response(
            cls._from_json(response_raw)
        )