seperated  code into different files
merged