common operation API