implement interface checks