restart and refactor