Changed the way of watching + some cleaning
Replaced type Watched and []Watched with  new type action and actions
So know any type of func() could be passed as an action also each action
has a key as an identifier so we can remove a specific subscriber also
it's possible to add action for certain events not all of them