Modified some params,methods,classes to public & extendable.