“trying to convert an existing class from concrete to abstract by pushing just the concrete parts down into a new subclass, you might accidentally leave remnants of concrete behavior behind.” — Anonymous Copy Share Image