working first pass on rules