I think this is better. Less generic, but more predictable.