working demo with immutable model