first version which implement the major job