major refactor and added specs
structure
added spec for Search
this is why you need specs
maybe more explicit
refactoring specs
i don't understand these specs myself :(