angle refactor