Data construction and UI