Add observer and resign function