Add specs for 'or' composition.
Use polymorphism instead of conditionals.