improve api, add travis