add buffer return