Add monitor example
Refactor all the things