improvment and test on addon system, still need some test