can be used alson on client side