add: back-end api support
refactoring