use block initialize