typo `max`, I assume you meant `match`.  Also, I would change `them, and to easily add new geometry types and appearances.` to `them and add a new geometry or appearance independently of each other`