just some reorder and declaration