This was a tricky rule to write