use Object.create to dynamically create rule objects
make rule immutable