moved logic to seperate files
merged - logic in seperate files