Refactor update

all specs passing