add two api implementations