many changes to support the new backend