Minor Refactoring

Update some classes to adhere to the Liskov's substitution principle