All four rules implemented