removed the understore prefix for private properties an functions and changed proptected to private