Neighborhood: Add type parameterization
Rule: Working on generateRule