add AdaptiveVectorBufferable, some convenience classes