client architecture