add bonus calculate logic