add; idea
add; idea struct & macro idea