use is_a instead of string comparison for interface check