Added Object Oriented version.
Merged local and origin.