#1 Refactor base class. Remove functionality from base to abstract.
#1 Refactor base class. Remove functionality from base to abstract.