tested and passed with api server.