refactor, add diffrent API file