render nicer, handle change bubbling, and save contact skipping