divide everything into 4 different files