refactoring + special bonus effects