add bonus, improve classes