may also want to special case empty, if that's possible.