Refactor AbstractDie
Improve tests