update with custom options
fixed some bugs and add more demo