Functions that should be implemented in subclasses should throw RaiseNotImplemented in the base class