I also think perhaps `createRule()` should be separated from `saveRule()`, similar to that for `item` and `assignment`.