initial commit for Liscov principle
completed changes for Liskov substitution principle