add revealing module pattern
Add observer design pattern