Merged abstract base class back in + docs