Add Cahnages

Refactory work