Good feedback from @serdar -- inheritance should only work if guard resource is a derived class of the parent. And since we only do this for execute resources, that effectively means that only if it is derived from execute.