restructure the API
progress
Restructure UI
App dispatching