Fixed bug of making class-level variable theme iterable
Fixed some other bugs on protocal.py
Updated doc, added plugin protocal
Adjusted function name