matched on tuple instead of dividend for cleaner implementation