trying to split rules into something more useful