backend implementation phase I