Widget: do a lot refactor

- add service
- add content provider
- smth else that i dont remember=)