cleaner protocol checking & no need to dismiss callout