made a cross-fading, buffering version