Fixing guard file.
Massive refactoring + new specs