Extending the Liskov Substitution Principle