shorthand if
added blank rule
added boolean rule
many more rules
using reflection instead of massive switch