make the delegate final