init and dao design