rules implemented