simpler rule construction if no constructor args