modify API/server architecture