modify api architecture