Pivoting to a mutation observer pattern