initial api implemented