Refactoring router.go to handle errors.

- Refactoring router.go to handle errors.
- Improving code coverage.
- Adding a constructor to Routes structure to pass filename to persist in.
- Turns the class testable
- Use blog instead of fmt.printf