seperate into different files for easier comprehension
add routes