remote api impl