some work on api
merge