Major changes. Review , Code cleaning