Did some final repairs.

Letter replacement and utime are now working properly.
Refactor rules.

Move classes into their own files and simplify objects. `On` fields now
have their own parsing class.