1. use consistent BEGIN/END macro wrapper for class binding
2. add macro for module binding
3. clean code using REGISTER macro
4. add panel/menu class binding