rules: better rule def, cleanup spacing