*moved explanation of rules to a separate method