Macrodev

1. add macro
2. add scope for list & macro 
3. fix bugs