use immutable-js for internal store data updates