Final explore

Integrated all the components .

where have define `self`, test your code.