added opt out, also added complete delegate method