remove blank line to make it shorter
last refactored version
add a shape example to show typeclass
refactor
refactor
some code to show pattern matching vs inheritance
some code to show pattern matching vs inheritance
remove test