<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def backup(self):
 """ Does the rotating backup. :return: Method success. :rtype: bool """


        LOGGER.debug("> Storing '{0}' file backup.".format(self.__source))

        foundations.common.path_exists(self.__destination) or foundations.io.set_directory(self.__destination)
        destination = os.path.join(self.__destination, os.path.basename(self.__source))
        for i in range(self.__count - 1, 0, -1):
            sfn = "{0}.{1}".format(destination, i)
            dfn = "{0}.{1}".format(destination, i + 1)
            if foundations.common.path_exists(sfn):
                if foundations.common.path_exists(dfn):
                    foundations.io.remove(dfn)
                os.renames(sfn, dfn)
        foundations.common.path_exists(destination) and os.rename(destination, destination + ".1")
        foundations.io.copy(self.__source, destination)
        return True