2.1

1. refactor again
2. fix a bug about using “class” and “base”