refactor angle attacker