use DELEGATE TYPE COMPATIBLE for Android