rough draft of HasCompat