Much more OOP now.  All shapes extends from generic shape class