api methods implementation