def update_channels(cls, installation_id, channels_to_add=set(),
                        channels_to_remove=set(), **kw):
        """
        Allow an application to manually subscribe or unsubscribe an
        installation to a certain push channel in a unified operation.

        this is based on:
        https://www.parse.com/docs/rest#installations-updating

        installation_id: the installation id you'd like to add a channel to
        channels_to_add: the name of the channel you'd like to subscribe the user to
        channels_to_remove: the name of the channel you'd like to unsubscribe the user from

        """
        installation_url = cls._get_installation_url(installation_id)
        current_config = cls.GET(installation_url)

        new_channels = list(set(current_config['channels']).union(channels_to_add).difference(channels_to_remove))

        cls.PUT(installation_url, channels=new_channels)
Allow an application to manually subscribe or unsubscribe an
        installation to a certain push channel in a unified operation.

        this is based on:
        https://www.parse.com/docs/rest#installations-updating

        installation_id: the installation id you'd like to add a channel to
        channels_to_add: the name of the channel you'd like to subscribe the user to
        channels_to_remove: the name of the channel you'd like to unsubscribe the user from