[client] basic effect and refactor