Design note: Looking at this I am asking myself why it is not a static function. There is not reason for it to not be. It is not using any-non static methods or attributes. With that being said I realize this is the patter used in `Parser.h` and to be frank I have no idea why I have done it (making it non-static). 

As of now I will pay more attention to what am I doing and will use static methods as much as possible. 

Also note (another rule I am violating) when a non-static method does not modify any of the instance content it is good practices to append `const` e.g.: 

```
void parse(const URI uri,URIResult& result) const;
```

but again this (and the master parse) method should really be

```
static void parse(const URI uri,URIResult& result);
```