// Do the actual implementation here, and ensure it is really a BackspaceDatabase
    protected virtual bool MakeBackupCallCore(Database d)
    {
        BackspaceDatabase bd = d as BackspaceDatabase;

        if (bd == null)
        {
            throw new ArgumentException("d must be a BackspaceDatabase");
        }
        // do some different stuff with bd
        return(true);
    }
 // Hide the base method
 public new bool MakeBackupCall(BackspaceDatabase d)
 {
     return(MakeBackupCallCore(d));
 }