Refactored some duplicated common functionality from concretes into the
abstract term.