Most of the rules are implemented