first pass at realtime updates