Big Refactor : Introduce Service objects
Move searchable spec to the correct place
Create notifications for specific events