data updates with UI, code cleanuo