add Cell and derivative interfaces and Buffer* implementations