API refactoring
Add order test
Merge branch 'api_refactoring' into develop