implement missing canApply methods