refactor operations into update
custom rendering

closes #15