add gracefully interface