refactored js, no data updates, but has data object