concat moved to client side