def load_recipe(self):
        '''load will return a loaded in singularity recipe. The idea
           is that these sections can then be parsed into a Dockerfile,
           or printed back into their original form.

           Returns
           =======
           config: a parsed recipe Singularity recipe
        '''

        # Comments between sections, add to top of file
        lines = self.lines.copy()
        comments = []

        # Start with a fresh config!
        self.config = dict()
     
        section = None
        name = None

        while len(lines) > 0:

            # Clean up white trailing/leading space
            line = lines.pop(0)
            stripped = line.strip()

            # Bootstrap Line
            if re.search('(b|B)(o|O){2}(t|T)(s|S)(t|T)(r|R)(a|A)(p|P)', line):
                self._load_bootstrap(stripped)

            # From Line
            if re.search('(f|F)(r|R)(O|o)(m|M)', stripped):
                self._load_from(stripped)

            # Comment
            if stripped.startswith("#"):
                comments.append(stripped)
                continue

            # Section
            elif stripped.startswith('%'):
                section = self._add_section(stripped)
                bot.debug("Adding section title %s" %section)

            # If we have a section, and are adding it
            elif section is not None:
                lines = [line] + lines
                self._load_section(lines=lines,
                                   section=section)

            self.config['comments'] = comments
load will return a loaded in singularity recipe. The idea
           is that these sections can then be parsed into a Dockerfile,
           or printed back into their original form.

           Returns
           =======
           config: a parsed recipe Singularity recipe