Refactor similar "almost" logic in to shared super-class.