chapter 15 -- custom formatter, validator and effect components