API improvements, but more copying