OO refactor & click to attack