always return arrays; it's too likely to be confusing otherwise