solve issue2
1. class
2. Extensibility