added context (this) for watch callbacks and method init() now is an internal function