more specific to different interfaces