add new rules
refactor