add BeforeXxx func