refactor + UI application