use extended type for buffer