finished all api - not all tested