api operations moved to client side