refactor with John.