Cleaning up code and improving maintainabillity

Reorganizing code so that it is no duplicated. Creating the super
object support for the Horizontal, vertical and quadarnt objects
because they were all the same. Contributin to the README.md and making
sure each class has a short description.