refactor all thing things