any special reason for not making this pure virtual, instead of a warning-only skeleton implementation?