first iteration
working but not live updating