wrap with anonymous function
fix indent
use my_init