rework of the backend