Improve specs
Improve the code (refactor)
Even more refactoring