two api implemented